﻿using Basic.FlowRemoteModel;

namespace Basic.FlowModel
{
    public static class ConstDic
    {
        public static readonly string FlowAppLinkType = "FlowApp";

        public static readonly string FlowInitVer = "v1.0.0";

        public static readonly int FlowNodeCoordinateX = 1;

        public static readonly string AppItemLinkType = "AuditAppItem";
        public static readonly FlowSignType[] ToVoidSignType = new FlowSignType[]
        {
            FlowSignType.手写签名,
            FlowSignType.签章
        };
        public static readonly FlowItemMarkState[] GoByNodeMark = new FlowItemMarkState[]
        {
                FlowItemMarkState.普通,
                FlowItemMarkState.撤回,
        };

        public static readonly FlowAuditItemStatus[] GoByNodeStatus = new FlowAuditItemStatus[]
            {
                FlowAuditItemStatus.审核通过,
                FlowAuditItemStatus.已委托,
                FlowAuditItemStatus.已转办,
                FlowAuditItemStatus.已向前加签,
                FlowAuditItemStatus.已向后加签
            };

        public static readonly FlowAuditItemStatus[] MuliteFilterStatus = new FlowAuditItemStatus[]
       {
            FlowAuditItemStatus.已撤回,
            FlowAuditItemStatus.已回退,
            FlowAuditItemStatus.已作废
       };

        public static readonly FlowItemMarkState[] MarkeStatus = new FlowItemMarkState[]
        {
            FlowItemMarkState.向前加签,
            FlowItemMarkState.向后加签,
            FlowItemMarkState.委托,
            FlowItemMarkState.转办,
            FlowItemMarkState.回签,
            FlowItemMarkState.回源
         };
        public static readonly FlowItemMarkState[] ReturnMarke = new FlowItemMarkState[]
        {
            FlowItemMarkState.向前加签,
            FlowItemMarkState.向后加签,
            FlowItemMarkState.委托,
            FlowItemMarkState.转办
         };
        public static readonly FlowAuditItemStatus[] ReturnStatus = new FlowAuditItemStatus[]
        {
            FlowAuditItemStatus.已向前加签,
            FlowAuditItemStatus.已向后加签,
            FlowAuditItemStatus.已委托,
            FlowAuditItemStatus.已转办
        };

        public static FlowItemAuditStatus[] ItemAuditStatus = new FlowItemAuditStatus[]
        {
            FlowItemAuditStatus.审核进行中,
            FlowItemAuditStatus.审核通过,
            FlowItemAuditStatus.待提交,
            FlowItemAuditStatus.打回修改
        };
        public static readonly FlowAuditItemStatus[] AllowWithdraw = new FlowAuditItemStatus[]
        {
            FlowAuditItemStatus.审核通过,
            FlowAuditItemStatus.已向前加签,
            FlowAuditItemStatus.已向后加签,
            FlowAuditItemStatus.已委托,
            FlowAuditItemStatus.已转办
        };

        public static readonly FlowAuditItemStatus[] PassStatus = new FlowAuditItemStatus[]
        {
             FlowAuditItemStatus.审核通过,
             FlowAuditItemStatus.终审通过
        };
        public static readonly FlowAuditItemStatus[] NoPassStatus = new FlowAuditItemStatus[]
        {
             FlowAuditItemStatus.审核进行中,
             FlowAuditItemStatus.已撤回,
             FlowAuditItemStatus.打回修改,
             FlowAuditItemStatus.已回退,
             FlowAuditItemStatus.审核未通过
        };
        public static FlowAuditItemStatus[] AuditEndStatus = new FlowAuditItemStatus[]
        {
            FlowAuditItemStatus.已取消,
            FlowAuditItemStatus.终审通过,
            FlowAuditItemStatus.审核未通过
        };
        public static FlowNodeType[] AuditNodeType = new FlowNodeType[]
        {
            FlowNodeType.单一处理结节,
            FlowNodeType.循环处理节点
        };
        public static FlowMsgStatus[] CopyWaitSendStatus = new FlowMsgStatus[]
            {
                FlowMsgStatus.待发送,
                FlowMsgStatus.发送失败
            };
    }
}
